﻿using sorTV.Interface;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;

namespace sorTV.Model
{
    /// <summary>
    /// Lavet af Rasmus - Objekt, som sendes rundt i systemet. Indeholder et XMLdokument 
    /// og det parsede XML data samt andre værdier for at få transportsystemet til at virke.
    /// </summary>
    public class Transport : ITransport
    {
        private List<IValgData> _valgData;
        private XmlDocument _document;
        private bool _godkendt;
        private TransportSteps _step;
        private bool _regel;
        private bool? _automatisk;
        private string _filnavn;


        public Transport(Dictionary<XmlDocument,string> values)
        {
            _filnavn = values.Values.First().ToString() ;
            _document = values.Keys.First();
            _valgData = null;
            _step = TransportSteps.Initial;
        }

        public Transport(string filnavn = "")
        {
            _filnavn = filnavn;
            _document = null;
            _valgData = new List<IValgData>();
            _step = TransportSteps.Initial;
        }

        /// <summary>
        /// Repræsenterer de forskellige trin et transportobjekt skal igennem (og kan komme igennem)
        /// </summary>
        public TransportSteps Step
        {
            get { return _step; }
            set { _step = value; }
        }

        public XmlDocument Document
        {
            get { return _document; }
            set { _document = value; }
        }
        

        public List<IValgData> ValgData
        {
            get { return _valgData; }
            set { _valgData = value; }
        }

        public bool Godkendt
        {
            get { return _godkendt; }
            set { _godkendt = value; }
        }
        public string Filnavn
        {
            get { return _filnavn; }
            set { _filnavn = value; }
        }
        

        public bool? Automatisk
        {
            get { return _automatisk; }
            set { _automatisk = value; }
        }
        

        public bool Regel
        {
            get { return _regel; }
            set { _regel = value; }
        }
    }

   
}
